package hongcheng.code_generator.templet;

import java.io.File;
import java.io.OutputStream;
import java.io.Writer;
import java.util.Map;

/***
 * 	自定义模本类接口
 * */
public interface ITemplet {

	
	/**
	 * 	处理数据和模板，生成内容
	 * 	@param dataMap 绑定的参数，此Map中的参数会替换模板中的变量
	 * 	@param writer 输出
	 * */
	void process(Map<?, ?> dataMap, Writer writer);
	
	/**
	 * 	处理数据和模板，生成内容
	 * 	@param dataMap 绑定的参数，此Map中的参数会替换模板中的变量
	 * 	@param writer 输出
	 * */
	void process(Map<?, ?> dataMap, OutputStream out);
	
	/**
	 * 	处理数据和模板，生成内容
	 *	@param dataMap 绑定的参数，此Map中的参数会替换模板中的变量
	 * 	@param writer 输出
	 * */
	void process(Map<?, ?> dataMap, File file);
	
	/**
	 * 	处理数据和模板，生成内容
	 *	@param dataMap 绑定的参数，此Map中的参数会替换模板中的变量
	 * 	@param filePath 文件绝对路径
	 * */
	void process(Map<?, ?> dataMap, String filePath);
	
	/**
	 * 	处理数据和模板，生成内容
	 *	@param dataMap 绑定的参数，此Map中的参数会替换模板中的变量
	 * 	@return 生成的内容字符串
	 * */
	String render(Map<?, ?> dataMap);
}
